A virtual machine is software that is executed on hardware to create a virtualization of a physical computer system. Virtual machines may function as self-contained platforms that run their own operating systems and software applications. A host machine may concurrently run one or more virtual machines using a hypervisor. The hypervisor allocates a certain amount of the host machine's resources, such as the host machine's underlying physical processors and memory devices, to each of the virtual machines. This allocation by the hypervisor allows guests of the virtual machines to transparently access the host machine's resources. Guest applications, including guest operating systems, may be executed on the allocated resources of each virtual machine. Local or remote clients may access these guest applications to perform computing tasks. In some instances, virtual machines and guest applications may be implemented to provide cloud computing environments.
Page tables may be used to translate from the guest-virtual memory space to the host-physical memory space address. The guest maintains a set of guest page tables in the guest memory, and each entry in a guest page table may map a location in the guest's guest-virtual memory space to a location in the guest's guest-physical memory space, which corresponds to the host physical memory on a native platform. Guest-physical memory is a guest's illusion of physical memory supported by the hypervisor, and refers to the memory that is visible to the guest running on the virtual machine and backed by the host-physical memory. Host-physical memory refers to the memory that is visible by the hypervisor as available on the system.